package com.yanqu.xiuxian.gameserver.tripletown.entity;

import java.util.ArrayList;
import java.util.List;

/**
 * 三消-每轮结果
 */
public class EliminateRoundResult {

    private int type = 1;                                                               // 类型：1正常消除，2无可消除的重排
    private List<EliminateStageResult> eliminateStageResultList = new ArrayList<>();    // 每阶段消除的方块
    private List<Block> createBombBlockList = new ArrayList<>();                        // 生成的炸弹方块的列表
    private Block orderBombBlock = null;                                                // 订单赠送的炸弹
    private int[][] blockList = null;                                                   // 当前方块
    private Order curOrder = null;                                                      // 当前订单
    private Order finishOrder = null;                                                   // 完成的订单
    private Order failOrder = null;                                                     // 失败的订单
    private int addOrderId = -1;                                                        // 添加的订单（去掉第一个，再把这个添加到最后）
    private List<Integer> monsterBloodList = new ArrayList<>();                         // 怪物剩余的血量(index-怪物列表的下标)
    private List<Integer> monsterHarmList = new ArrayList<>();                          // 怪物受到的伤害(index-怪物列表的下标)

    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }

    public List<EliminateStageResult> getEliminateStageResultList() {
        return eliminateStageResultList;
    }

    public void setEliminateStageResultList(List<EliminateStageResult> eliminateStageResultList) {
        this.eliminateStageResultList = eliminateStageResultList;
    }

    public List<Block> getCreateBombBlockList() {
        return createBombBlockList;
    }

    public void setCreateBombBlockList(List<Block> createBombBlockList) {
        this.createBombBlockList = createBombBlockList;
    }

    public Block getOrderBombBlock() {
        return orderBombBlock;
    }

    public void setOrderBombBlock(Block orderBombBlock) {
        this.orderBombBlock = orderBombBlock;
    }

    public int[][] getBlockList() {
        return blockList;
    }

    public void setBlockList(int[][] blockList) {
        this.blockList = blockList;
    }

    public Order getCurOrder() {
        return curOrder;
    }

    public void setCurOrder(Order curOrder) {
        this.curOrder = curOrder;
    }

    public Order getFinishOrder() {
        return finishOrder;
    }

    public void setFinishOrder(Order finishOrder) {
        this.finishOrder = finishOrder;
    }

    public int getAddOrderId() {
        return addOrderId;
    }

    public void setAddOrderId(int addOrderId) {
        this.addOrderId = addOrderId;
    }

    public Order getFailOrder() {
        return failOrder;
    }

    public void setFailOrder(Order failOrder) {
        this.failOrder = failOrder;
    }

    public List<Integer> getMonsterBloodList() {
        return monsterBloodList;
    }

    public void setMonsterBloodList(List<Integer> monsterBloodList) {
        this.monsterBloodList = monsterBloodList;
    }

    public List<Integer> getMonsterHarmList() {
        return monsterHarmList;
    }

    public void setMonsterHarmList(List<Integer> monsterHarmList) {
        this.monsterHarmList = monsterHarmList;
    }

    public boolean addEliminateStageResult(EliminateStageResult eliminateStageResult) {
        return this.eliminateStageResultList.add(eliminateStageResult);
    }

    public EliminateStageResult setEliminateStageResult(int index, EliminateStageResult eliminateStageResult) {
        return this.eliminateStageResultList.set(index, eliminateStageResult);
    }

    public boolean addCreateBombBlockList(Block block) {
        return this.createBombBlockList.add(block);
    }

    public Block setCreateBombBlockList(int index, Block block) {
        return this.createBombBlockList.set(index, block);
    }

    public boolean addMonsterBloodList(int monsterBlood) {
        return this.monsterBloodList.add(monsterBlood);
    }

    public int setMonsterBloodList(int index, int monsterBlood) {
        return this.monsterBloodList.set(index, monsterBlood);
    }

    public boolean addMonsterHarm(int monsterHarm) {
        return this.monsterHarmList.add(monsterHarm);
    }

    public int setMonsterHarm(int index, int monsterHarm) {
        return this.monsterHarmList.set(index, monsterHarm);
    }

}
